package org.d2_recursion.d2_recursion;

import java.io.File;

/**
 * 删除非空文件夹   独立功能独立成方法、
 */
public class RecursionText5 {
    public static void main(String[] args) {
        File dir = new File("D:\\用于测试的");
        //System.out.println(file.delete());   //显示结果为false  文件里面有内容删不掉
        deleteDir(dir);
    }
    public static void deleteDir(File dir){
        if(dir == null ||!dir.exists()){
            return;
        }
        //1.dir存在且是文件夹，拿里面的一级文件对象
        File[] files = dir.listFiles();
        if(files == null){  // 使用listfile时，当主调是文件或者路径不存在时 返回null
            dir.delete();    //所以删除后返回
            return;
        }
        if(files.length == 0){    //使用listfile时，当主调是空文件夹时返回一个长度为0的数组
            dir.delete();
            return;
        }
        //2.这是一个有内容的文件夹。干掉里面的内容在干掉自己。
        for (File file : files) {    ///遍历文件
            if(file.isFile()){
                file.delete();
            }else{
                deleteDir(file);  //如果有遇到文件夹继续调用方法来删除
            }

        }
        dir.delete();   //最后删掉自己。
    }
}
